package middleware.p2p;

/**
 *	Classe implementante il descrittore di un Worker.
 *	I dati contenuti nel descrittore sono l'indirizzo al quale è possibile contattare il worker e lo
 *	stato corrente del worker.
 *	@see WorkerStatus
 */
public class WorkerDescriptor {
	/**
	 *	Indirizzo del Worker
	 */
	private Address addr;
	/**
	 * 	Stato corrente del Worker
	 */
	private WorkerStatus status;
	/**
	 *	Costruttore principale della Classe.
	 *	@param	addr	Indirizzo del Worker 
	 */
	public WorkerDescriptor(Address addr) {
		this.addr=addr;
		this.status=WorkerStatus.Free;
	}
	/**
	 * 	Costruttore di Default del Descriptor
	 */
	public WorkerDescriptor(){
		this(null);
	}
	/**
	 * 	Metodo per ottenere l'indirizzo del Worker.
	 * 	@return L'indirizzo del Worker
	 */
	public Address getAddr() {
		return addr;
	}
	/**
	 * 	Metodo per impostare l'indirizzo del Worker
	 * 	@param	addr	Indirizzo da impostare.
	 */
	public void setAddr(Address addr) {
		this.addr = addr;
	}
	/**
	 * 	Metodo per ottenere lo stato corrente del Worker
	 * 	@return	Lo stato del Worker.
	 */
	public WorkerStatus getStatus() {
		return status;
	}
	/**
	 * 	Metodo per impostare lo stato del Worker all'interno del Descrittore.
	 *	@param	status	Lo stato del Worker da impostare.
	 */
	public void setStatus(WorkerStatus status) {
		this.status = status;
	}
}